﻿using System.Collections.Generic;
using Sinacor.Infra.UI.Common;
using Sinacor.UI.Bovespa.Contabil.Communication.Bovespa.Contabil.EventoContabil;

namespace Sinacor.UI.Bovespa.Contabil.Communication.Translator.DataContractToModel
{
    /// <summary>
    /// Communication.Translator.DataContractToModel Class - EventoContabil
    /// </summary>
    public class EventoContabil 
    {
        #region Métodos Públicos

        /// <summary>
        /// Traduz um contrato de dados do tipo EventoContabilResponse para uma model do tipo EventoContabil.
        /// </summary>
        /// <param name="response">EventoContabilResponse</param>
        /// <returns>Model.EventoContabil</returns>
        public Model.EventoContabil ToEventoContabil(EventoContabilResponse response)
        {
            Model.EventoContabil request = new Model.EventoContabil();

            request.Codigo = response.Codigo;
            request.Descricao = response.Descricao;
            request.UtilizaMunicipio = response.UtilizaMunicipio;

            return request;
        }

        /// <summary>
        /// Traduz uma coleção de contrato de dados do tipo EventoContabilResponse para uma 
        /// coleção de models do tipo EventoContabil.
        /// </summary>
        /// <param name="responseList">Lista de objetos do tipo EventoContabilResponse</param>
        /// <returns>Coleção de models do tipo Model.EventoContabil</returns>
        public ModelCollection<Model.EventoContabil> ToEventoContabil(List<EventoContabilResponse> responseList)
        {
            ModelCollection<Model.EventoContabil> requestList = new ModelCollection<Model.EventoContabil>();

            foreach (EventoContabilResponse response in responseList)            
                requestList.Add(this.ToEventoContabil(response));                

            return requestList;
        }

        #endregion
    }
}
